// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_BASE_TEXT_TRACK_CONFIG_H_
#define MEDIA_BASE_TEXT_TRACK_CONFIG_H_

#include <string>

#include "media/base/media_export.h"

namespace media {

// Specifies the varieties of text tracks.
enum TextKind {
    kTextSubtitles,
    kTextCaptions,
    kTextDescriptions,
    kTextMetadata,
    kTextNone
};

class MEDIA_EXPORT TextTrackConfig {
public:
    TextTrackConfig();
    TextTrackConfig(const TextTrackConfig& other);
    TextTrackConfig(TextKind kind,
        const std::string& label,
        const std::string& language,
        const std::string& id);

    // Returns true if all fields in |config| match this config.
    bool Matches(const TextTrackConfig& config) const;

    TextKind kind() const { return kind_; }
    const std::string& label() const { return label_; }
    const std::string& language() const { return language_; }
    const std::string& id() const { return id_; }

private:
    TextKind kind_;
    std::string label_;
    std::string language_;
    std::string id_;
};

} // namespace media

#endif // MEDIA_BASE_TEXT_TRACK_CONFIG_H_
